
<!DOCTYPE html>
<html>
    <head>
        <title>knockout.js based example</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" type="text/css" href="css/knockout.css" media="screen" />
    </head>
    <body>
        <h2>Student Editor Application</h2>
        <div class="remarks">
        This is a simple 1-page style application. It does not communicate with the server to request
        new web page. Instead, the application logic runs within a page, and the business objects that are
        being edited are client side (JavaScript) objects. The server is merely used to provide persistency
        for these objects. The objects used in this example are extremely simple: students with two properties
        <tt>name</tt> and <tt>firstName</tt>.<p/>
        The application is developed in two stages:
        </div>
        
        <h3><a href="index-v1.html">Student Editor - Iteration 1</a></h3>
        <div class="remarks">
        The first iteration of the student editor does not support object persistency.
        I.e., there is no communication with the server, the focus is on developing the client-side logic.
        Model and view are separated using <a href="http://knockoutjs.com/">knockout.js</a>. The list view is populated with
        some records, this is hard-coded in the script.
        </div>
        
        <h3><a href="index-v2.html">Student Editor - Iteration 2</a></h3>
        <div class="remarks">
        The list contains persistent (saved) and transient (newly added) objects. The save
        action is enabled if an object is either new, or has unsaved changes. There are bulk crud actions,
        and functions to refresh client objects with values that might have been changed on the server.
        The application communicates with the <tt>nz.ac.massey.cs.webtech.rest.CRUDEndpoint</tt> servlet that 
        accepts GET/POST/PUT/DELETE requests to fetch/insert/update/delete records. The 
        <a href="http://api.jquery.com/jQuery.ajax/">jquery ajax API</a> is used for 
        this purpose. The DB used on the server is <a href="http://www.mongodb.org/">MongoDB</a>.
        </div
        <p/>
        <hr/>
        &copy; Jens Dietrich, 2013
    </body>
</html>